Computer software developers typically sell multiple versions of software programs. One typical sales technique is to provide a complete version, but under a trial license that may limit the operation of the software product in some way. One example is providing users with free copies of software that only work for limited period of time as dictated by the terms of the trial license. The trial license may further limit access to other features such as specific capabilities or interoperability features.
Limiting the owner's use of the software product to the terms of the trial license is normally accomplished through the use of configuration data stored on the computer on which the software product is installed. There are typically one or more items of configuration data associated with each software product installed on the computer. Based on the information contained in the configuration data for a software product, the features and behavior of the software product may be limited. When a software product is installed, configuration data for that product is stored that limits the use of the software product to be consistent with the rights conveyed by the license to the software. One example of configuration data is a registry entry stored in a registry maintained by the computer's operating system of software products. Upon installation of a new software product, a registry entry for that product is created containing some or all of the configuration data necessary to execute or instantiate the software product.
Unfortunately, a user wishing to upgrade to the full license to an installed software product must (in addition to purchasing the rights to the full license version) reinstall the entire software product to delete the previous configuration data and license and create new configuration data in accordance with the new license terms.
One drawback of this method is that the user must be able to find the original storage media containing the trial version. In addition, the reinstallation requirement is frustrating to users because of the time, complexity and inconvenience of uninstalling and reinstalling software. Another frustrating drawback is that files, macros, and user preferences created for the trial version by the user can occasionally be lost in the reinstallation process. From the software developer's perspective, the uninstall/reinstall process is also inefficient as normally most, if not all, of the code for the full version of a software product is installed as part of the installation of the trial version. Thus, reinstallation just to change the configuration data for the software product is inefficient.